Published on

Giới thiệu về DynamoDB

Authors
  • avatar
    Name
    Hoàng Hữu Mạnh
    Twitter

Chương 1: Giới thiệu về DynamoDB

1.1 DynamoDB là gì?

Amazon DynamoDB là một dịch vụ cơ sở dữ liệu NoSQL được quản lý toàn phần do Amazon Web Services (AWS) cung cấp. DynamoDB cho phép người dùng lưu trữ và truy xuất lượng dữ liệu lớn với hiệu suất cao mà không cần phải quản lý hạ tầng cơ sở dữ liệu phức tạp.

Đặc điểm chính của DynamoDB:

  • Managed NoSQL Database: DynamoDB là một cơ sở dữ liệu NoSQL được quản lý toàn phần, nghĩa là AWS sẽ chịu trách nhiệm quản lý cơ sở hạ tầng, bao gồm sao lưu, phục hồi, bảo mật và mở rộng.
  • Scalability: DynamoDB có khả năng tự động mở rộng để xử lý tải công việc tăng lên hoặc giảm xuống mà không cần can thiệp thủ công.
  • Performance: Được thiết kế để cung cấp độ trễ thấp và hiệu suất cao, DynamoDB đảm bảo các thao tác đọc và ghi diễn ra nhanh chóng.
  • Security: DynamoDB cung cấp các tính năng bảo mật mạnh mẽ như mã hóa dữ liệu, kiểm soát truy cập dựa trên IAM, và các công cụ giám sát.

1.2 Các khái niệm cơ bản trong DynamoDB

Bảng (Table)

  • Table: Một bảng trong DynamoDB tương tự như một bảng trong cơ sở dữ liệu quan hệ. Mỗi bảng chứa một tập hợp các mục (items).

Mục (Item)

  • Item: Một mục là một tập hợp các thuộc tính (attributes). Mỗi mục có thể có các thuộc tính khác nhau, và không bắt buộc phải có schema cố định như trong cơ sở dữ liệu quan hệ.

Thuộc tính (Attribute)

  • Attribute: Một thuộc tính là một cặp giá trị khóa, tương tự như một cột trong cơ sở dữ liệu quan hệ.

Khóa chính (Primary Key)

DynamoDB yêu cầu mỗi bảng phải có một khóa chính để xác định duy nhất các mục trong bảng. Có hai loại khóa chính:

  1. Partition Key: Một khóa phân vùng là một thuộc tính duy nhất cho mỗi mục. DynamoDB sử dụng giá trị của khóa phân vùng để xác định phân vùng (partition) mà mục sẽ được lưu trữ.
  2. Composite Key: Gồm Partition Key và Sort Key. Trong trường hợp này, DynamoDB sẽ sử dụng cả hai giá trị để xác định mục duy nhất.

Chỉ mục (Index)

Chỉ mục giúp tối ưu hóa truy vấn trong DynamoDB:

  1. Global Secondary Index (GSI): Cho phép bạn tạo các truy vấn trên các thuộc tính không phải là khóa chính. GSI có thể có cả Partition Key và Sort Key khác với bảng chính.
  2. Local Secondary Index (LSI): Cho phép bạn tạo các truy vấn trên các thuộc tính không phải là khóa chính nhưng cùng Partition Key với bảng chính. LSI chỉ có thể được tạo khi tạo bảng.

1.3 Các thao tác cơ bản trong DynamoDB

Tạo và xóa bảng

  • Tạo bảng: Xác định tên bảng, loại khóa chính, và cấu hình thông lượng.
  • Xóa bảng: Xóa một bảng và tất cả các mục trong bảng đó.

Các thao tác CRUD

  • Create (PutItem): Thêm một mục mới vào bảng.
  • Read (GetItem, Query, Scan): Truy vấn và đọc dữ liệu từ bảng.
  • Update (UpdateItem): Cập nhật thuộc tính của mục hiện có.
  • Delete (DeleteItem): Xóa một mục khỏi bảng.

1.4 Các loại dữ liệu trong DynamoDB

DynamoDB hỗ trợ nhiều loại dữ liệu khác nhau, bao gồm:

  • Số (Number): Bao gồm số nguyên và số thực.
  • Chuỗi (String): Dữ liệu văn bản.
  • Nhị phân (Binary): Dữ liệu nhị phân.
  • Danh sách (List): Một tập hợp có thứ tự các giá trị.
  • Bản đồ (Map): Một tập hợp các cặp khóa-giá trị.
  • Tập hợp (Set): Một tập hợp các giá trị duy nhất.

1.5 Tổng kết

Trong chương này, chúng ta đã tìm hiểu về DynamoDB, một cơ sở dữ liệu NoSQL được quản lý toàn phần bởi AWS. Chúng ta đã xem xét các khái niệm cơ bản như bảng, mục, thuộc tính, khóa chính, và chỉ mục. Chúng ta cũng đã giới thiệu về các thao tác cơ bản như tạo và xóa bảng, các thao tác CRUD, và các loại dữ liệu mà DynamoDB hỗ trợ.

Tài liệu tham khảo